﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using Informant.Services.Models.Contacts;

namespace Informant.Services.Contacts
{
	public interface IContactServiceCallback
	{
		/// <summary>
		/// Callback for logging on the contact service.
		/// </summary>
		/// <param name="loggedOn">if set to <c>true</c> [logged on].</param>
		[OperationContract(IsOneWay = true)]
		void LogOnContactServiceCallback(Boolean loggedOn);
		/// <summary>
		/// Callback for logging off the contact service.
		/// </summary>
		/// <param name="loggedOff">if set to <c>true</c> [logged off].</param>
		[OperationContract(IsOneWay = true)]
		void LogOffContactServiceCallback(Boolean loggedOff);
		/// <summary>
		/// Callback for retrieving all contacts.
		/// </summary>
		/// <param name="contacts">The contacts.</param>
		[OperationContract(IsOneWay = true)]
		void RetrieveAllContactsCallback(IEnumerable<Contact> contacts);
		/// <summary>
		/// Callback for retrieving all groups.
		/// </summary>
		/// <param name="groups">The groups.</param>
		[OperationContract(IsOneWay = true)]
		void RetrieveAllGroupsCallback(IEnumerable<Group> groups);
	}
}
